#!/usr/bin/env bash
#-------------------------------------------------------
#	FileName	: autotar.sh
#	Author		：hpy
#	Date		：2025年02月18日
#	Description	：
#-------------------------------------------------------
 
main() {
    local output=""
    while getopts 'o:h' OPT;do
        case $OPT in
            o)
                output="$OPTARG" ;;
            ?)
                help && exit ;;
        esac
    done

    shift $((OPTIND-1)) #移除已经解析的参数
    fid="$*"
    # test ! -f $fid && test ! -d $fid && echo "error: $fid is not a file or direction " && return 2
    test -z $output && output="${fid}.tar.gz" 
    echo "$fid --> $output"
    case $output in
        *.tar.gz) tar -zcvf $output  $fid ;;
        *.tar.bz2) tar -jcvf $output  $fid ;;
        *.tar.z) tar -Zcvf $output  $fid ;;
        *.tar) tar -cvf $output  $fid ;;
        *.bz2) tar -jcvf $output  $fid ;;
        *.tgz) tar -zcvf $output  $fid ;;
        *.zip) zip -qr $output  $fid ;;
        *.rar) rar -a $output  $fid ;;
    esac 
}



function help() {
printf "
Version: autotar 1.0
NOTE: 自动打包工具
Usage: `basename $0` [option]
    -o string                        输出压缩文件名称
    -h                               帮助
示例:
    `basename $0` -o test.tar.gz test 
    `basename $0` -o test.bz2 test 
    `basename $0` -o test.z test 
    `basename $0` -o test.tar test 
    `basename $0` -o test.tgz test 
    `basename $0` -o test.zip test 
    `basename $0` -o test.rar test 
"
}

main $*